C language patterns